/*****************************************************************
 Naicigam Engine v0.1

 File: GraphicsStructs.h
 Created: 28/03/08
*****************************************************************/

//----------------------------------------------------------------
#ifndef GRAPHICS_STRUCTS_H
#define GRAPHICS_STRUCTS_H
//----------------------------------------------------------------
#include <d3d9.h>
//----------------------------------------------------------------
namespace leo
{
//----------------------------------------------------------------
// color vertex D3D define
#define COLOR_VERTEX (D3DFVF_XYZ|D3DFVF_DIFFUSE)

// color vertex struct
struct ColorVertex
{
	float X,Y,Z;
	unsigned long Color;
};
//----------------------------------------------------------------
// texture vertex D3D define
#define TEXTURE_VERTEX (D3DFVF_XYZ|D3DFVF_NORMAL|D3DFVF_TEX1|D3DFVF_TEXCOORDSIZE2(0))

// texture vertex struct
struct TextureVertex
{
	float X,Y,Z;
	float nx, ny, nz;
	float U, V;

	TextureVertex() {}
	TextureVertex(float x, float y, float z, float u, float v)
	:
	X(x),Y(y),Z(z),U(u),V(v)
	{
		
	}
};
//----------------------------------------------------------------
// matrix modes

// include DirectX to have the matrix constants
//#include <d3dx9.h>

enum MatrixMode
{
	WORLD = D3DTS_WORLDMATRIX(0),
	VIEW = D3DTS_VIEW,
	PROJECTION = D3DTS_PROJECTION
};
//----------------------------------------------------------------
} // end namespace
//----------------------------------------------------------------
#endif // GRAPHICS_STRUCTS_H
//----------------------------------------------------------------